<?php 
/**
 * 操作用户表模型，建议名字和表名相同，如果相同可以不指定表名$table='user';
 */
class MemberModel extends Model{
	//定义表名
	public $table='sn_member';
	//验证规则-,字段名，不为空，2必须验证,3不为空
	//$validate名字是固定的在model.class.php中固定
	public $validate = array(
		array('username', 'nonull', '用户名不能为空 ', 2,3),
		array('password', 'nonull', '密码不能为空 ', 2,3),
		array('code', 'nonull', '验证码不能为空 ', 2,3)
	);

	/**
	 * 验证登陆
	 */
	public function validate_login(){

		//执行自动验证，如果不通过，返回假
		//如果想让自动验证和自动处理生效，必须使用create方法
		//执行自动验证，必须使用create()
		if(!$this->create()) return false;
		//处理post验证,function Q($var, $default = null, $filter = null)
		$code = Q('post.code','','strtoupper');
		if ($code!=session('code')) {
			//error继承自Model.class.php中的属性
			$this->error='验证码错误！';
			return false;
		}
		//用户名不存在或者不正确，处理post提交数据
		$username=Q('post.username');
		$password=Q('post.password','','md5');

		//查询数据库
		$data=$this->where(array('username'=>$username))->find();
		//无结果集或者密码不匹配,赋值错误内容给$this->error
		if (!$data || $password !=$data['password']) {
			$this->error='用户名或者密码不正确!';
			return false;
		}
	

		//通过以上验证，返出查询数据
		return $data;
	}


	//获得所有数据
	public function get_all_data($where=null){
		
		$data=$this->where($where)->all();
		return $data;
	}
	//获得一条数据
	public function get_one_data($where=null){
		
		$data=$this->where($where)->find();
		return $data;
	}

	//删除数据
	public function del_data($where){

		$this->where($where)->del();
		return true;
	}
	//编辑数据
	public function edit_data($where){
		//执行自动验证，必须使用create()
		if(IS_POST){
			// if(!$this->create()) return false;	
			//加密密码
			$_POST['password']=md5(Q('post.password'));
			$this->where($where)->update();
			return true;
		}
		$this->error="非法请求";
		
	}
	//添加数据
	public function add_data(){
		//执行自动验证，必须使用create()
		if(IS_POST){
			// if(!$this->create()) return false;	
			//加密密码
			$_POST['password']=md5(Q('post.password'));
			$this->add();
			return true;
		}
		$this->error="非法请求";
		
	}
}

